/*
*Copyright 2021-2023 NERCIS
*
*Licensed under the Apache License, Version 2.0 (the "License");
*you may not use this file except in compliance with the License.
*You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
*Unless required by applicable law or agreed to in writing, software
*distributed under the License is distributed on an "AS IS" BASIS,
*WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
*See the License for the specific language governing permissions and
*limitations under the License.
*/

package cn.ac.nercis.pes.community.model.vo.evaluation;

import javafx.beans.property.SimpleBooleanProperty;
import javafx.beans.property.SimpleStringProperty;
import org.apache.commons.lang3.StringUtils;

/**
 * 测评工具信息修改视图模型
 * @author zpy
 * @version 1.0.0
 */
public class EvaluationToolsVO {
    private final SimpleStringProperty id = new SimpleStringProperty();
    private final SimpleStringProperty systemId = new SimpleStringProperty();
    private final SimpleStringProperty toolId = new SimpleStringProperty();
    private final SimpleStringProperty name = new SimpleStringProperty();
    private final SimpleStringProperty version = new SimpleStringProperty();
    private final SimpleStringProperty vendor = new SimpleStringProperty();
    private final SimpleStringProperty desc = new SimpleStringProperty();
    private final SimpleBooleanProperty isCommon = new SimpleBooleanProperty();
    private boolean change = false;

    public boolean isChange(){
        return change;
    }

    public void resetChange(){
        change = false;
    }


    public String getId() {
        return id.get();
    }

    public SimpleStringProperty idProperty() {
        return id;
    }

    public void setId(String id) {
        this.id.set(id);
    }

    public String getSystemId() {
        return systemId.get();
    }

    public SimpleStringProperty systemIdProperty() {
        return systemId;
    }

    public void setSystemId(String systemId) {
        this.systemId.set(systemId);
    }

    public String getToolId() {
        return toolId.get();
    }

    public SimpleStringProperty toolIdProperty() {
        return toolId;
    }

    public void setToolId(String toolId) {
        this.toolId.set(toolId);
    }

    public String getName() {
        return name.get();
    }

    public SimpleStringProperty nameProperty() {
        return name;
    }

    public void setName(String name) {
        if(!StringUtils.equals(getName(),name)){
            change = true;
        }
        this.name.set(name);
    }

    public String getVersion() {
        return version.get();
    }

    public SimpleStringProperty versionProperty() {
        return version;
    }

    public void setVersion(String version) {
        if(!StringUtils.equals(getVersion(),version)){
            change = true;
        }
        this.version.set(version);
    }

    public String getVendor() {
        return vendor.get();
    }

    public SimpleStringProperty vendorProperty() {
        return vendor;
    }

    public void setVendor(String vendor) {
        if(!StringUtils.equals(getVendor(),vendor)){
            change = true;
        }
        this.vendor.set(vendor);
    }

    public String getDesc() {
        return desc.get();
    }

    public SimpleStringProperty descProperty() {
        return desc;
    }

    public void setDesc(String desc) {
        if(!StringUtils.equals(getDesc(),desc)){
            change = true;
        }
        this.desc.set(desc);
    }

    public boolean isIsCommon() {
        return isCommon.get();
    }

    public SimpleBooleanProperty isCommonProperty() {
        return isCommon;
    }

    public void setIsCommon(boolean isCommon) {
        if(isIsCommon() != isCommon){
            change = true;
        }
        this.isCommon.set(isCommon);
    }
}